var express = require('express');
var fs = require('fs');
var app = module.exports = express.createServer();


app.configure(function(){
	//app.set('views', __dirname + '/views');
	//app.set('view engine', 'jade');
	//JADE에서 EXTENDS와 BLOCK을 사용하기 위해 LAYOUT을 FALSE로 설정해 줍니다.
	//app.set('view options', { layout: false });
	//올라오는 파일 용량을 제한합니다.
	app.use(express.limit('5mb'));
	//기본 TEMP 폴더를 지정하기 위해 UPLOADDIR 을 지정합니다.
	app.use(express.bodyParser({uploadDir: __dirname + '/tmp'})); 
	app.use(express.methodOverride());
	//기본 로그를 찍기위해 사용합니다.(아파치 로그처럼 요청/응답에 대한 로그를 보여줍니다.)
	app.use(express.logger({ buffer: 5000}));
	//로그에 클라이언트의 FAVICON 요청을 무시하도록 해줍니다.
	//app.use(express.favicon());
	app.use(app.router);
	//EXPRESS에서 이미지 등 STATIC 파일들을 제공해주기 위한 폴더 설정
	app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
	app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
	app.use(express.errorHandler());
});


app.get('/', function(req,res){
	res.end("hello");
});

app.get('/upload', function(req, res){
	console.log(new Date().getMilliseconds())
	res.send('<form action="/upload" method="post" enctype="multipart/form-data"><input type="file" name="imgs" multiple=""/><input type="submit" value="Upload"/></form>');
});

app.post('/upload', function(req,res){
	//console.log('-> ' +  util.inspect(req.files));
	console.log("==============");

	var file = req.files.imgs
	var tmp_path = file.path;
	var target_path = './'+file.name + new Date().getMilliseconds() ;
	console.log(target_path);
	fs.rename(tmp_path, target_path, function(err){
		if(err) throw err;
		else 
			fs.readFile(target_path,function(err,data){
				if(err) throw err;
				else{
					console.log(">>>>" + target_path);
					res.send(data);
				}
			});
	});
	
});

app.listen(1234);
console.log('server listening ...');
